#ifndef _HCI_HCIPCONFIG_H
#define _HCI_HCIPCONFIG_H

#ifdef __cplusplus
extern "C"
{
#endif

#if defined(_WIN32)
#define PACKED
#pragma pack(push)
#pragma pack(1)  // 1 byte alignment
#else
#define PACKED __attribute__((packed, aligned(1)))
#endif

#include "hci_def.h"

    // #define HCI_CFG_BROADPARAM 	6040

    // Intf_GetParam(HCI_CFG_BROADPARAM, 0, HIFACE_DEVICE_CFG_S , UINT nRsvd)
    // Intf_SetParam(HHCI_CFG_BROADPARAM, 0,HIFACE_DEVICE_CFG_S , UINT nRsvd)

    typedef enum _VIDEO_SENSOR_TYPE_E
    {

        E_SENSOR_TYPE_1080P_IMX327 = 0x100,
        E_SENSOR_TYPE_1080P_IMX327_DBL = 0x101,
        E_SENSOR_TYPE_1080P_IMX385 = 0x102,
        E_SENSOR_TYPE_1080P_IMX307 = 0x103,
        E_SENSOR_TYPE_1080P_IMX307_DBL = 0x104,
        E_SENSOR_TYPE_500W_IMX335 = 0x105,
        E_SENSOR_TYPE_1080P_GC2053_DBL = 0x106,
        E_SENSOR_TYPE_1080P_GC2053 = 0x107,
        E_SENSOR_TYPE_800W_IMX334 = 0x108,
        E_SENSOR_TYPE_1080P_GC2063 = 0x109,
    } VIDEO_SENSOR_TYPE_E;

    typedef enum _VIDEO_VO_TYPE_E
    {
        E_VO_NONE = 0x00,
        E_VO_CVBS = 0x01,
        E_VO_HDMI = 0x02,
        E_VO_BT1120 = 0x03,
        E_VO_LCD_8INCHES_SCD_ILI9881C = 0x04,  // �ӳɴ� ILI9881C 8�����
        E_VO_LCD_8INCHES_HX = 0x05,            // ���� 8����
        E_VO_LCD_8INCHES_XZM = 0x06,           // ��֥�� 8��
        E_VO_LCD_5INCHES_SY = 0x07,            // ���� 5��
        E_VO_LCD_5INCHES_FRD = 0x08,           // ����� 5��
        E_VO_LCD_7INCHES_ZZW = 0x09,           // ������ 7���� test
        E_VO_LCD_8INCHES_XZM_ILI9881C = 0x0A,  // ����֥ 8�� ILI9881C
        E_VO_LCD_5INCHES_XZM = 0x0B,
        E_VO_LCD_7INCHES_270 = 0x0C,  // 7����ת270��
    } VIDEO_VO_TYPE_E;

    typedef enum _HIFACE_PLATFORM_TYPE_E
    {
        E_PLATFORM_HIFACE = 0x00,   // HIFACE
        E_PLATFORM_DS = 0x01,       // 大树
        E_PLATFORM_TJ = 0x02,       // 天晶
        E_PLATFORM_FN = 0x03,       // 百度 蜂鸟
        E_PLATFORM_TN = 0x04,       // ten 牛
        E_PLATFORM_WD = 0x05,       // 维多
        E_PLATFORM_HUWA = 0x06,     // 虎娃
        E_PLATFORM_AIXIKA = 0x07,   // 爱希卡
        E_PLATFORM_SANQUAN = 0x08,  // 三全
        E_PLATFORM_JIESHI = 0X09,   // 杰视 人脸识别开关打开、身份证开关打开
        E_PLATFORM_HFHOT = 0x0A,    // 海飞热成像
        E_PLATFORM_SANCAI = 0x0B,   // 三彩
        E_PLATFORM_ZKYA = 0x0C,     // ZKYA
        E_PLATFORM_LCS = 0x0D,      // LCS  李春生
        E_PLATFORM_SUYU = 0x0E,     // 速宇

        E_PLATFORM_UNAVAILABLE = 0x100,
    } HIFACE_PLATFORM_TYPE_E;

    typedef enum _HIFACE_TEMP_TYPE_E
    {
        E_TEMP_NONE = 0x00,      // NONE
        E_TEMP_DS = 0x01,        // ����
        E_TEMP_TM = 0x02,        // ��a
        E_TEMP_TN = 0x03,        // ten ţ
        E_TEMP_HAIMAN = 0x04,    // ����
        E_TEMP_HIK = 0x05,       // ����
        E_TEMP_SEEKWARE = 0x06,  // SEEKWARE ����ģ��
    } HIFACE_TEMP_TYPE_E;

    typedef struct _HCI_DEV_SERIALNO_S  // 256byte
    {
        UCHAR byCfg_Flag;     // �Ƿ�������
        UCHAR byMac[6];       // MAC��ַ
        CHAR byDeviceID[32];  // �豸ID
        CHAR byUUID[64];      // UUID
        CHAR byGUID[36];      // GUID
        INT dwSensor;
        UCHAR byRes[113];  // Ԥ��
    } PACKED HCI_DEV_SERIALNO_S;

    typedef struct _HCI_DEVICE_CFG_S  //
    {
        INT bySensorType;            // 传感器类型 VIDEO_SENSOR_TYPE_E
        UCHAR byWiFi;                // WiFi
        UCHAR byPhotoresistorLevel;  // 光敏电阻检测 0.低 1.高 2.ADC
        UCHAR byIRCUTLevel;          // IRCUT控制 0.低 1.高
        UCHAR byInfraredLampLevel;   // 红外灯控制 0.低 1.高 2.PWM
        UCHAR byLanguange;           // 0中文 1英文
        UINT dwDefaultETHIPAddr;     // 默认ETH IP地址
        UCHAR byres1[4];
        UCHAR byOSDMode;  // OSD时间日期  显示模式 (0 时间左上标题右下 1
                          // 时间右上标题左下)
        UCHAR byNetDhcp;  // 有线dhcp   0 关 1开
        UCHAR byres2;
        UCHAR byAfLensType;     // AF镜头类型
        UCHAR byIRCUTMode;      // IR CUT切换检测模式 0 --光敏检测  1-- 时间控制  2--
                                // 视频检测 3 禁止红外模式
        UCHAR byVOdev;          // VO视频设备 VIDEO_VO_TYPE_E
        UCHAR byAfSerialChn;    // 自动变倍串口号
        UCHAR byTempModules;    // 0 close, 1 ds modules  2 天瞐  ,  3 十牛, 4 海曼
                                // //HIFACE_TEMP_TYPE_E
        UCHAR byPlatformCode;   // platform code  0 default PLATFORM_CODE_TYPE_E
        UCHAR byReaderType;     //  uart0 读卡器类型开关
        UCHAR byTouchTEnable;   // 触摸开关
        UCHAR byGnssType;       // GNSS 模块类型
        UCHAR byLedMode;        // 0 双白光 、1 白光+红外 2、双红外
        UCHAR byRes[1889];      // 预留
    } PACKED HCI_DEVICE_CFG_S;  // HHCI_CFG_BROADPARAM

#ifdef __cplusplus
}
#endif

#endif
